wireguard vpn docker 内网穿透

用 wg-easy 五分钟搭建 WireGuard VPN,在外也能轻松访问家庭内网

2026.03.16 阅读约 7 分钟

想要在外随时随地访问家里的 NAS、打印机、路由器?WireGuard 是现在最流行的 VPN 协议,而 wg-easy 让部署变得前所未有的简单。本文带你一步步用 Docker 搭建 WireGuard VPN,实现公网安全访问家庭局域网。

用 wg-easy 五分钟搭建 WireGuard VPN,在外也能轻松访问家庭内网

前言

作为一个 Homelab 玩家,我们家里跑了各种各样的服务:NAS 存着资料、打印机共享文档、路由器管理后台、OpenClaw AI 助手… 这些服务只对内网开放,平时在家用着很舒服,但一旦出门想找个文件,就只能“望网兴叹”。

传统的内网穿透方案要么不稳定、要么收费贵、要么配置复杂。今天给大家推荐一个开箱即用的方案:wg-easy + WireGuard,用 Docker 一键部署,五分钟就能拥有一个属于自己的安全 VPN,随时随地连回家中局域网。

参考视频:(待发布)

项目地址:https://github.com/wg-easy/wg-easy

为什么选择 WireGuard + wg-easy

WireGuard 是目前最火的现代 VPN 协议,相比 OpenVPN 它:

  • ✅ 更快:加密算法更高效,延迟更低
  • ✅ 更轻量:内核级实现,资源占用极小
  • ✅ 更安全:代码简洁,更容易审计
  • ✅ 更易用:配置简单,支持漫游

而 wg-easy 把 WireGuard 的复杂配置打包成了一个友好的 Web UI,让你:

  • 🐳 Docker 一键部署
  • 🖥️ 可视化 Web 管理界面
  • 🔑 一键生成客户端配置二维码
  • 📱 手机扫码直接连接,无需手动改配置
  • 🌍 所有核心配置都在 Web 界面完成,无需重启容器

💡 版本提示:wg-easy 15 版本之后重构了配置系统,WG_HOSTPASSWORD 等参数改到 Web 界面配置了,本文针对最新版本编写。

准备工作

在开始之前,你需要准备:

  1. 一台公网可访问的服务器(家里有公网 IP 部署在家里 NAS/路由器最好,没有的话用 VPS 也可以)
  2. Docker 和 Docker Compose 已经安装
  3. 开放端口51820/udp(WireGuard 端口)和 51821/tcp(Web 管理端口)

部署步骤

1. 创建 Docker Compose 文件

创建一个目录,然后新建 docker-compose.yml

services:
  wg-easy:
    image: ghcr.io/wg-easy/wg-easy:15
    container_name: wg-easy
    restart: unless-stopped

    environment:
      #如果使用https反向代理,需要开启这一项
      - INSECURE=true
    volumes:
      - etc_wireguard:/etc/wireguard

    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"

    cap_add:
      - NET_ADMIN
      - SYS_MODULE

    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1

2. 启动容器

docker-compose up -d

等待镜像拉取完成,容器启动后,访问 http://你的服务器IP:51821 打开管理界面。第一次访问会进入初始化向导。

3. Web 界面完成配置

初始化向导会让你配置:

  1. 管理员账号密码:设置 Web 管理界面的登录账号和密码
  2. WireGuard 端口:默认 51820,一般不用改
  3. 主机地址 :填入你的服务器公网 IP 或者域名,这个地址会自动写入客户端配置

确认配置后保存。

如果你想让客户端 只代理局域网 IP 流量而不是代理全局流量,需要配置允许的 IP:右上角管理面板 -> 网络配置 -> 允许的 IP -> 填入 10.8.0.0/24 (默认网段)

4. 添加客户端

配置完成后登录 Web 管理界面,点击「创建客户端」,输入客户端名称(比如「iPhone」、「MacBook Pro」),直接创建即可。

创建完成后,会显示一个二维码:

  • 手机端:下载 WireGuard APP,点击「添加隧道」→「从二维码导入」,扫码直接导入配置
  • 电脑端:点击「Download」下载配置文件,导入到 WireGuard 客户端

客户端使用

各个平台都有 WireGuard 客户端:

平台 下载方式
iOS App Store 搜索 «WireGuard»
Android Google Play 或者 GitHub 下载
Windows 官网 https://www.wireguard.com/install/
macOS App Store 或者 Homebrew

导入配置后,点一下「连接」,所有设备就连入同一个 VPN 网络了:

  • VPN 服务器(家里的 NAS/VPS)能访问,你的手机/笔记本也就能访问
  • 所有客户端之间互相看得见,直接内网互通
  • 如果你把 wg-easy 部署在家里,连上 VPN 就等同于在家中局域网,可以直接访问任何内网服务,和在家一样

使用体验

wg-easy 最大的优点就是简单,对于需要在外访问家庭内网来说,这绝对是目前最优雅的自建 VPN 方案:

  • 启动快:容器秒起,连接建立只需要几百毫秒
  • 管理方便:Web UI 点几下就能添加删除用户,所有配置可视化
  • 二维码导入:手机端真的太方便了,不用复制粘贴配置
  • 稳定运行:新版本重构后更稳定,长期运行不出问题

常见问题

Q: 连接成功了,但访问不了家里内网?

A: 确认 wg-easy 部署在你家里的内网网关/服务器,服务器本身已经能访问内网,WireGuard 配置好 IP 转发后,客户端连上自然就能访问。

Q: 二维码分享配置安全吗?

A: 二维码包含了客户端的独立密钥,只分享给你自己用,不要泄露二维码就没问题。每个客户端都是独立密钥,随时可以在 Web UI revoke 删除。

Q: 可以多个设备同时连接吗?

A: 完全可以,每个设备一个客户端配置,互相不影响,Web UI 一目了然。

Q: v14 升级到 v15 需要重新配置吗?

A: 需要,v15 重构了配置存储格式,建议备份后重新部署。

总结

如果你需要在外访问家庭内网,又不想用第三方内网穿透服务,wg-easy + WireGuard 绝对是目前最优解之一:

  • 👍 部署简单:Docker 一键启动,Web 界面完成所有配置
  • 👍 管理方便:添加删除用户全可视化操作
  • 👍 性能优异:WireGuard 本身就是内核级实现,速度快延迟低
  • 👍 完全免费:开源项目,没有使用限制,没有人数限制

现在就动手搭一个,出门也能随时访问家里的资料了!